#include "junix.h" 
struct A  
{
	int i;
	char c;
	int i2;
} __attribute__( (packed) );

struct B
{
	char c;
	short st;
	char c2;
} __attribute__((packed));


struct C
{
	char c;
	short st;
	char c2;
} __attribute__((aligned(128)));


struct D
{
	char c __attribute__((aligned(128)));
	short st __attribute__((aligned(128)));
	char c2 __attribute__((aligned(128)));
} __attribute__((aligned(128)));


int main(int argc, char **argv)
{
	printf("A:%d\n",sizeof(struct A) );
	printf("B:%d\n",sizeof(struct B) );
	printf("C:%d\n",sizeof(struct C) );
	printf("D:%d\n",sizeof(struct D) );

	printf("%d\n",offsetof(struct B,c2) );
	printf("%d\n",offsetof(struct B,st) );

	int i=123;
	typeof(i) q='x';
	printf("%d\n",q);

	void *p = &i;
	printf("%p\n",p);
	p++;
	printf("%p\n",p);
	p += 16;
	printf("%p\n",p);

	return 0;
}

